package com.library.xtype;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

/**
 * Created by jiangtao on 16/5/21.
 *
 * @author jiang.tao
 * @version 1.0.0
 */
public interface INuwaItemBinder<T> extends INuwaGroupBinder<T>, INuwaLifecycle {
    /**
     * 由于Adapter晚于Fragment、Activity的穿件，所以此方法不会执行。
     */
    @Override
    @Deprecated
    void onCreate();

    /**
     * list view create view
     *
     * @param convertView convertView
     * @param parent      parent
     * @param inflater    inflater
     * @return view
     */
    View onCreateView(View convertView, ViewGroup parent, LayoutInflater inflater);

    /**
     * list view bind vo
     *
     * @param positionOfFeeds 在feed 中的位置。
     *                        当多次调用{@link NuwaGroupRecyclerViewAdapter#add(int, Object)}、{@link
     *                        NuwaGroupRecyclerViewAdapter#removeGroup(Object)} 方法后，此值会不准确。需要调用{@link
     *                        NuwaGroupRecyclerViewAdapter#getFeedPosition(Object)}获取当前VO在Adapter中的位置
     * @param convertView     convertView
     * @param parent          parent
     * @param vo              vo
     */
    void onBindView(int positionOfFeeds, View convertView, ViewGroup parent, T vo);

    /**
     * 与外界交互的唯一桥梁
     *
     * @param listener listener
     */
    void setOnClickListener(View.OnClickListener listener);
}
